今天我們要正式進入 Node.js 的專案世界 🚀
學會 npm
、理解 package.json
,並打造一個小專案,最後還會安裝兩個開發必備套件,讓開發更有效率。
npm
(Node Package Manager)是 Node.js 內建的套件管理工具,就像開發者的 App Store。
它能幫你做到:
檢查是否安裝成功:
npm -v
若沒有輸出版本,請回到 Day 2 環境安裝 的教學,確認 Node.js 與 npm 是否安裝正確。
g
)套件安裝在電腦的全域環境,可在任何地方直接呼叫:
npm install -g nodemon
// 使用
nodemon app.js
http-server
、pm2
。套件安裝在專案的 node_modules/
,並寫入 package.json
。
npm install express
這是最常見的安裝方式,確保團隊每個人裝到的版本一致。
dependencies → 執行時需要(會部署到正式環境)
例:express
、mongoose
、dotenv
npm install express
devDependencies → 只在開發/測試時需要
例:nodemon
、jest
、eslint
npm install -D nodemon jest
npx
是 npm v5.2 之後內建的工具,用來 直接執行套件 CLI,不必全域安裝。
npx nodemon app.js # 不用全域安裝
npx create-next-app myapp # 建立 Next.js 專案
工具 | 用途 | 範例 | 適合情境 |
---|---|---|---|
npm | 安裝 / 移除套件,管理依賴 | npm install express |
建立專案依賴 |
npx | 執行套件 CLI(免安裝) | npx nodemon app.js |
一次性工具、避免全域安裝 |
npm run | 執行 package.json 的 scripts |
npm run dev |
團隊統一開發流程 |
mkdir my-app && cd my-app
npm init -y
my-app/
├── node_modules/
├── src/
│ └── index.js
├── package.json
├── package-lock.json
└── README.md
src/index.js
console.log("Hello from my first Node.js project 🚀");
執行:
node src/index.js
// "Hello from my first Node.js project 🚀"
在 Node.js 世界裡,package.json
就是 專案的身分證與設定檔。
它記錄了這個專案的基本資訊、需要的套件,以及如何啟動與管理。
最上方通常包含:
{
"name": "my-app",
"version": "1.0.0",
"description": "這是一個範例專案",
"author": "Howard",
"license": "MIT"
}
"dependencies": {
"express": "^4.18.2"
},
"devDependencies": {
"nodemon": "^3.0.1"
}
express
)nodemon
、eslint
)👉 npm install
時會依據這裡的清單安裝正確的版本。
"scripts": {
"start": "node src/index.js",
"dev": "nodemon src/index.js",
"lint": "eslint ."
}
npm start
→ 執行 node src/index.js
npm run dev
→ 用 nodemon
啟動(程式改動自動重啟)npm run lint
→ 執行 ESLint 檢查程式碼👉 scripts
是團隊協作時非常重要的工具,能統一開發流程。
除了 package.json
,還會自動產生一個 package-lock.json
:
自動重啟伺服器:
npm install -D nodemon
"scripts": {
"start": "node src/index.js",
"dev": "nodemon src/index.js"
}
執行:
npm run dev
有安裝這套件後,只要有異動到檔案,它就會幫忙自動重啟,從此不需要手動關閉server後再重啟,減少繁瑣的動作。
管理環境變數:
npm install dotenv
建立 .env
:
PORT=3000
在程式中使用:
import "dotenv/config";
console.log("Server will run on:", process.env.PORT);
import "dotenv/config";
import express from "express";
const app = express();
const port = process.env.PORT || 3000;
app.get("/", (req, res) => res.send("Hello Node.js 🚀"));
app.listen(port, () => {
console.log(`伺服器運行中:http://localhost:${port}`);
});
執行:
npm run dev
// 伺服器運行中:http://localhost:3000
今天我們學到: